import Toast from "../../miniprogram_npm/@vant/weapp/toast/toast";
var http = require('../../utils/https.js')
Page({
    data: {
        address: "纽科科技园",
        promotionList: [], // 存储返回的特价活动商品
        groupBuyingList: [], // 存储今日团购数据
        time: 0,
        timeData: {},
        forText: [
            "夏日解暑西瓜"
        ],
        currentIndex: 0, // 当前索引

        notice: "翠花超市快送 开业大酬宾 所有商品 满 100 减 10 ！快来抢购吧！！！",
        // 限时抢购信息
        limitTime: [],

        // 商品信息
        goodList: [],
        activityList: [], // 用于存储活动列表数据
        total: 0, // 用于存储总条数
        loading: false, // 加载状态
        error: '', // 错误信息

        // 商品父级分类列表
        fatherClassifyList: [],
    },

    // 地址
    address() {
        var userInfo = wx.getStorageSync('userInfo')
        if (userInfo != null && userInfo != undefined) {
            wx.navigateTo({
                url: '/index/pages/mzhAddress/mzhAddress',
            })
        } else {
            wx.showToast({
                title: '登录过期',
                icon: 'none',
                duration: 1000
            })
            setTimeout(() => {
                wx.redirectTo({
                    url: '/index/pages/mzhLogin/mzhLogin',
                })
            }, 1000)
        }
    },

    // 获取商品父级分类列表
    getFatherClassifyList() {
        this.setData({ loading: true });
        http.GET(
            '/product/productCategory/fatherList',
            null,
            (res) => {
                this.setData({
                    fatherClassifyList: res.rows || [],
                    loading: false
                });
                console.log('获取商品父级分类列表', this.data.fatherClassifyList);
            },
            (err) => {
                console.error('分类请求失败:', err);
                this.setData({ loading: false });
            }
        );
    },
    // 跳转对应商品分类（带id参数）
    goToCORRClassify(e) {
        // 获取当前点击项的id（通过自定义属性传递）
        const categoryId = e.currentTarget.dataset.id;

        // 将id存入本地存储（switchTab不支持URL传参，用storage临时存储）
        if (categoryId != 0) {
            wx.setStorageSync('currentCategoryIndex', categoryId);
        }

        wx.switchTab({
            url: '/pages/classify/classify',
        })
    },

    // 获取限时抢购数据
    getLimitTimeList() {
        http.GET(
            '/activity/sale/list', {},
            (res) => {
                console.log('限时抢购数据：', res);

                if (res.rows && Array.isArray(res.rows)) {
                    const now = Date.now();

                    const limitTimeList = res.rows.map(item => {
                        let time = 0;

                        if (item.activityType?.endTime) {
                            // 把 `-` 转成 `/`，防止 iOS 解析问题
                            const endTimeStr = item.activityType.endTime.replace(/-/g, '/');

                            // 拆分日期和时间
                            const [datePart, timePart = '00:00:00'] = endTimeStr.split(' ');

                            // 拆分年月日
                            const [year, month, day] = datePart.split('/').map(num => parseInt(num, 10));

                            // 拆分时分秒（秒不存在就补 0）
                            let [hour, minute, second] = timePart.split(':').map(num => parseInt(num || '0', 10));
                            if (isNaN(hour)) hour = 0;
                            if (isNaN(minute)) minute = 0;
                            if (isNaN(second)) second = 0;

                            // 按本地时区构造时间戳
                            const endTime = new Date(year, month - 1, day, hour, minute, second).getTime();

                            // 剩余毫秒数
                            if (!isNaN(endTime)) {
                                time = Math.max(endTime - now, 0);
                            }
                        }

                        return {
                            id: item.id,
                            url: item.product?.mainImage || '',
                            context: item.product?.name || '',
                            price: item.flashPrice || item.product?.price || 0,
                            time: time, // 独立倒计时
                            timeData: {},
                            productId: item.product?.id
                        };
                    });

                    this.setData({
                        limitTime: limitTimeList
                    });
                }
            },
            (err) => {
                console.error('获取限时抢购失败', err);
            }
        );
    },
    // 点击单个限时商品跳转详情
    goToPromotionGood(e) {
        const productId = e.currentTarget.dataset.productId;
        wx.navigateTo({
            url: `/wqfSpecialOfferMarket/pages/wqfSpecialOfferGoodsDetails/wqfSpecialOfferGoodsDetails?productId=${productId}`
        });
    },


    // 活动跳转
    // 活动跳转方法修改
    goTOActivity(e) {
        // 获取当前点击的活动ID
        const id = e.currentTarget.dataset.id;

        // 在activityList中找到对应的活动数据
        const currentActivity = this.data.activityList.find(item => item.id === id);
        if (!currentActivity) {
            Toast.fail('未找到活动信息');
            return;
        } else {
            console.log('dd' + currentActivity)
        }
        // 根据url值判断跳转地址
        let targetUrl = '';
        switch (currentActivity.url) {
            case 0:
                // url为0时跳转到第一个地址
                targetUrl = '/index/pages/mzhLimitedBuy/mzhLimitedBuy';
                break;
            case 1:
                // url为1时跳转到第二个地址
                targetUrl = '/index/pages/wqfSpecialOfferMarket/wqfSpecialOfferMarket';
                break;
            default:
                // 默认跳转或提示
                Toast.fail('未配置跳转地址');
                return;
        }

        // 执行跳转
        wx.navigateTo({
            url: targetUrl
        });
    },

    // 倒计时变化（根据索引更新对应商品的 timeData）
    onChange(e) {
        const index = e.currentTarget.dataset.index; // 从模板传 index
        const key = `limitTime[${index}].timeData`;
        this.setData({
            [key]: e.detail
        });
    },
    toSearch(e) {
        console.log(e);
        // var url = e.currentTarget.dataset.url
        wx.navigateTo({
            url: "/index/pages/mzhSerch/mzhSerch",
        })
    },
    // 会员码
    toVIPCord() {
        wx.navigateTo({
            url: '/index/pages/mzhVIPCode/mzhVIPCode',
        })
    },
    // 前往限时抢购
    toTime() {
        wx.navigateTo({
            url: '/index/pages/mzhLimitedBuy/mzhLimitedBuy',
        })
    },
    // 前往限时抢购商品细节
    toLimitTimeGood(e) {
       const productId = e.currentTarget.dataset.productId;
        wx.navigateTo({
            url: `/index/pages/mzhLimitedGoodsDetail/mzhLimitedGoodsDetail?id=${productId}`,
        })
    },
    // 获取商品列表
    getGoodList() {
        const that = this;
        http.GET(
            '/product/productinfo/list', {},
            (res) => {
                console.log('商品列表返回数据:', res);

                if (res.rows && Array.isArray(res.rows)) {
                    // 先过滤 status=1 的商品
                    let filtered = res.rows.filter(item => item.status === 1);

                    // 只保留前 6 条
                    filtered = filtered.slice(0, 10);

                    // 映射为模板需要的字段
                    const goodList = filtered.map(item => ({
                        id: item.id,
                        url: item.mainImage,
                        introduction: item.name + (item.subtitle ? ` - ${item.subtitle}` : ''),
                        price: item.price || 0
                    }));

                    that.setData({
                        goodList
                    });
                }
            },
            (err) => {
                console.error('获取商品列表失败', err);
            }
        );
    },
    // 前往普通商品细节
    toGood(e) {
        var id = e.currentTarget.dataset.id
        wx.navigateTo({
            url: '/index/pages/mzhGoodsDetail/mzhGoodsDetail?id=' + id,
        })
    },
    goToVegetables(e) {
        console.log(e);
        wx.navigateTo({
            url: '/index/pages/wqfSpecialOfferMarket/wqfSpecialOfferMarket'
        });
    },
    goToGroupBuying(e) {
        console.log(e);
        const id = e.currentTarget.dataset.id;
        wx.navigateTo({
            url: '/wqfGroupBuying/pages/wqfGroupBuyingGoodsDetails/wqfGroupBuyingGoodsDetails?id=' + id
        });
    },
    goToGroup(e) {
        console.log(e);
        wx.navigateTo({
            url: '/index/pages/wqfgroupBuying/wqfgroupBuying'
        });
    },
    getAddress() {
        var userInfo = wx.getStorageSync('userInfo')
        var that = this
        http.GET(`/user/address/listByUserId?userId=${userInfo.userId}`, { }, function(res) {
            if(res.code===200){
                var getAddressList = res.data
                // 如果有默认的地址即为 index 如果没有默认地址那么就是第一个
                var index = 0
                for(var i =0 ;i<getAddressList.length;i++){
                    if(getAddressList[i].isDefault==1){
                        index = i
                        break
                    }
                }
                that.setData({
                    address:getAddressList[index].details
                })
                
            }
            console.log('获取用户地址成功:', res);
          }, function(err) {
            console.error('失败:', err);
          });
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        // 获取用户信息 如果为空表示需要登陆
        http.GET('/getInfo', {}, function (res) {
            if (res.code === 200) {
                wx.setStorageSync('userInfo', res.user)
            } else {
                Toast.fail({
                    message: res.msg,
                    forbidClick: true,
                });
                wx.redirectTo({
                    url: '/index/pages/mzhLogin/mzhLogin',
                })
            }
        }, function (err) {
            console.error('失败:', err);
        });
        // 设置定时器，每三秒切换一次文本
        setInterval(() => {
            this.setData({
                currentIndex: (this.data.currentIndex + 1) % this.data.forText.length // 循环切换索引
            });
        }, 3000);

        // 页面加载时获取活动列表
        this.getActivityList();
        this.getLimitTimeList();
        this.getPromotionList();
        this.getGroupBuyingList();
        this.getGoodList();

        //获取商品父类列表
        this.getFatherClassifyList()

        // 获取地址信息
        this.getAddress()
    },
    // 获取今日团购数据
    getGroupBuyingList() {
        const that = this;
        http.GET(
            '/activity/activitygroup/list', // 接口路径
            {},
            (res) => {
                console.log('今日团购返回数据:', res);
                if (res.rows && Array.isArray(res.rows)) {
                    const groupBuyingList = res.rows.map(item => ({
                        id: item.id,
                        name: item.product?.name || '',
                        subtitle: item.product?.subtitle || '',
                        price: item.groupPrice || item.product?.price || 0,
                        url: item.product?.mainImage || 'https://via.placeholder.com/150'
                    }));

                    that.setData({
                        groupBuyingList
                    });
                }
            },
            (err) => {
                console.error('获取今日团购失败', err);
            }
        );
    },

    // 点击跳转商品详情
    // goToGroupBuying(e) {
    //     const id = e.currentTarget.dataset.id;
    //     console.log('点击商品ID:', id);
    //     // 跳转逻辑，例如：
    //     wx.navigateTo({
    //         url: `/pages/productDetail/productDetail?id=${id}`
    //     });
    // },

    // 获取特价活动列表
    getPromotionList() {
        http.GET(
            '/activity/promotion/list', {},
            (res) => {
                console.log('特价活动数据：', res);

                if (res.rows && Array.isArray(res.rows)) {
                    // 转换成前端需要的数据结构
                    const promotionList = res.rows.map(item => ({
                        id: item.id,
                        name: item.product?.name || '', // 商品名称
                        subtitle: item.product?.subtitle || '', // 商品副标题
                        price:  item.product?.price || 0, // 活动价格优先使用 value
                        url: item.product?.mainImage || '', // 商品主图
                        productId:item.productId
                    }));

                    // 更新页面数据
                    this.setData({
                        promotionList: promotionList.slice(0, 2) // 前两条就写在数据里
                    });
                }
            },
            (err) => {
                console.error('获取特价活动失败', err);
            }
        );
    },

    // 获取活动列表数据
    getActivityList: function () {
        // 显示加载状态
        this.setData({
            loading: true,
            error: ''
        });
        // 发送 GET 请求
        http.GET(
            '/activity/type/list', // 接口路径
            {}, // 这里没有参数，传空对象
            (res) => { // 成功回调
                // 隐藏加载状态
                this.setData({
                    loading: false
                });
                console.log('活动列表获取功，共', res.rows, '条数据');
                // 存储返回的数据
                if (res.rows && Array.isArray(res.rows)) {
                    this.setData({
                        activityList: res.rows,
                        total: res.total || 0
                    });

                } else {
                    this.setData({
                        error: '数据格式不正确'
                    });
                }
            },
            (err) => { // 失败回调
                // 隐藏加载状态并显示错误信息
                this.setData({
                    loading: false,
                    error: '获取活动列表失败，请稍后重试'
                });

                console.error('活动列表请求失败：', err);

                // 显示错误提示
                wx.showToast({
                    title: '获取失败',
                    icon: 'none',
                    duration: 2000
                });
            }
        );
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        this.getAddress()
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})